package org.summerframework.component.upload;

import org.summerframework.component.upload.file.service.dto.FileUserRelDTO;
import org.summerframework.component.upload.type.FileUploadDTO;

/**
 * @author 石超
 * @version v1.0.0
 */
public interface FileUploadService {

    /**
     * 文件上传
     *
     * @param file 文件信息
     * @return 文件结果
     */
    FileUserRelDTO uploadFile(FileUploadDTO file);

    /**
     * name: 名称
     * bytes: 流
     *
     * @param id 文件id
     * @return map
     */
    default DownloadInputSteam getInputSteam(Long id) {
        return getInputSteam(id, null);
    }

    /**
     * name: 名称
     * bytes: 流
     *
     * @param id         文件id
     * @param uploadFile 压缩的方式, 可以为null
     * @return map
     */
    DownloadInputSteam getInputSteam(Long id, String uploadFile);

    /**
     * name: 名称
     * bytes: 流
     *
     * @param path 路径
     * @return map
     */
    DownloadInputSteam getInputSteam(String path, String uploadFile);
}
